package Negocio;

import java.util.ArrayList;
import java.util.List;

import DTO.DTO_Mesa;
import DTO.DTO_MesaComposite;
import DTO.DTO_MesaSimple;
import DTO.DTO_Mozo;
import DTO.DTO_Sector;
import Entities.Entity_Mesa;
import Entities.Entity_Mozo;
import Entities.Entity_Sector;

public class Sector {

	private int idsector;
	private String nombre;
	private List<Mesa> mesas;
	private List<Mozo> mozos;
	
	public Sector(int idsector, String nombre, List<Mesa> mesas, List<Mozo> mozos) {
		super();
		this.idsector = idsector;
		this.nombre = nombre;
		this.mesas = mesas;
		this.mozos = mozos;
	}
	
	public Sector(DTO_Sector sector){
		this.idsector = sector.getIdsector();
		this.nombre = sector.getNombre();
		this.mesas = new ArrayList<Mesa>();
		for(DTO_Mesa m : sector.getMesas()){
			if(m instanceof DTO_MesaSimple){
				this.mesas.add(new MesaSimple((DTO_MesaSimple) m));
			}
			else{
				this.mesas.add(new MesaComposite((DTO_MesaComposite) m));

			}
		}
		this.mozos = new ArrayList<Mozo>();
		for(DTO_Mozo mozo : sector.getMozos()){
			this.mozos.add(new Mozo(mozo));
		}
		
	}

	public Sector() {
	
	}

	public Sector(Entity_Sector sector) {
		this.idsector = sector.getIdsector();
		this.nombre = sector.getNombre();
		this.mesas = new ArrayList<Mesa>();
		for(Entity_Mesa m : sector.getMesas()){
			this.mesas.add(new MesaSimple(m));
		}
		this.mozos = new ArrayList<Mozo>();
		for(Entity_Mozo mozo : sector.getMozos()){
			this.mozos.add(new Mozo(mozo));
		}
		
	}

	public int getIdsector() {
		return idsector;
	}

	public void setIdsector(int idsector) {
		this.idsector = idsector;
	}

	public String getNombre() {
		return nombre;
	}

	public void setNombre(String nombre) {
		this.nombre = nombre;
	}

	public List<Mesa> getMesas() {
		return mesas;
	}

	public void setMesas(List<Mesa> mesas) {
		this.mesas = mesas;
	}

	public List<Mozo> getMozos() {
		return mozos;
	}

	public void setMozos(List<Mozo> mozos) {
		this.mozos = mozos;
	}
	public DTO_Sector toDTO()
	{
		DTO_Sector sector = new DTO_Sector();
		sector.setIdsector(idsector);
		sector.setNombre(nombre);
		List<DTO_Mesa> mess = new ArrayList<DTO_Mesa>();
		for(Mesa mesa : mesas)
		{
			if(mesa instanceof MesaSimple)
				mess.add((DTO_MesaSimple) mesa.toDTO());
			else if(mesa instanceof MesaComposite)
				mess.add((DTO_MesaComposite) mesa.toDTO());
		}
		sector.setMesas(mess);
		List<DTO_Mozo> mozs = new ArrayList<DTO_Mozo>();
		for(Mozo m: mozos)
			mozs.add(m.toDTO());
		sector.setMozos(mozs);
		return sector;
		
	}

	public Entity_Sector toEntity() {
		Entity_Sector sector = new Entity_Sector();
		sector.setIdsector(idsector);
		sector.setNombre(nombre);
		List<Entity_Mesa> mess = new ArrayList<Entity_Mesa>();
		for(Mesa mesa : mesas)
		{
			mess.add(((MesaSimple)mesa).toEntity());
		}
		sector.setMesas(mess);
		List<Entity_Mozo> mozs = new ArrayList<Entity_Mozo>();
		for(Mozo m: mozos)
			mozs.add(m.toEntity());
		sector.setMozos(mozs);
		return sector;
		
	}
	
}
